/*
*ModuleMange 协程管理，对于协程的类型申请回收等操作
*author:wjc
*
 */
package tugou

// import (
// 	//	"errors"
// 	"net/http"
// 	"reflect"
// 	"tugou/logs"
// 	"tugou/web"
// 	"tugou/websocket"
// )

// const (
// 	Mode_Single = "single"
// 	Mode_Gate   = "gate"
// 	Mode_Game   = "game"
// 	Mode_Center = "center"
// )

// type ManageConf struct {
// 	Mode string //运行模式
// }
// type Manage struct {
// }

// func (this *Manage) ClientLink(c *web.Context) { //客户连接
// 	count := len(this.ManagePlayer.run)
// 	if count >= this.ManagePlayer.maxCount {
// 		return
// 	}
// 	player := this.ManagePlayer.Creat()
// 	player.run(player, c, &this.upgrader, this)
// }
// func (this *Manage) creatModule(name string, data interface{}) (id string, err error) { //创建模块
// 	logs.Debug("创建模块", *this)
// 	module, err := this.ManageModules.creatModule(name)
// 	if err != nil {
// 		return nil, err
// 	}
// 	err = module.run(module, this, data)
// 	if err != nil {
// 		return nil, err
// 	}
// 	gate := module.getModuleGate()
// 	return gate, err
// }
// func (this *Manage) init() { //初始化
// 	logs.Debug("初始化Manage--[start]")
// 	this.ManageModules.init() //初始化模块管理
// 	this.ManagePlayer.init()  //初始化玩家模块
// 	this.ManageCenter.init()  //初始化中心
// 	this.upgrader = websocket.Upgrader{
// 		ReadBufferSize:    4096,
// 		WriteBufferSize:   4096,
// 		EnableCompression: true,
// 		CheckOrigin: func(r *http.Request) bool {
// 			return true
// 		},
// 	}
// 	logs.Debug("初始化Manage--[end]")
// }

// func (this *Manage) RegPlayer(player PlayerI, maxCount int) { //注册玩家模块
// 	playerType := reflect.TypeOf(player)
// 	name := playerType.Elem().Name()
// 	for k, _ := range this.ManageModules.content {
// 		if name == k {
// 			panic(name + "玩家模块，已经被占用了")
// 		}
// 	}
// 	if this.ManagePlayer.pType == nil {
// 		this.ManagePlayer.RegPlayer(player, maxCount)
// 		logs.Info("注册[" + name + "]模块成功")
// 	} else {
// 		panic("玩家模块已经被注册过来")
// 	}
// }
// func (this *Manage) RegModule(extend ModuleI, maxCount int) {
// 	moduelType := reflect.TypeOf(extend)
// 	name := moduelType.Name()
// 	if this.ManagePlayer.pType != nil {
// 		playerName := this.ManagePlayer.pType.Name()
// 		if playerName == name {
// 			panic("玩家模块与游戏模块同名了" + name)
// 		}
// 	}
// 	this.ManageModules.RegModule(extend, maxCount)
// }
